System and method for programmatic generation of attribute descriptors

ABSTRACT

Embodiments provide a computer-executable method, computer system and non-transitory computer-readable medium for programmatically processing text information to generate attribute descriptors contained therein. The method includes programmatically accessing, via a network device, a textual unit, the textual unit associated with a commercial entity or a commercial object. The method also includes executing a text processing engine to programmatically generate an attribute descriptor from the textual unit. The method further includes storing, on a non-transitory computer-readable storage device, the attribute descriptor in association with identification of the commercial entity or the commercial object.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional PatentApplication No. 62/030,549, filed Jul. 29, 2014, and U.S. ProvisionalPatent Application No. 62/033,090, filed Aug. 4, 2014, each of which isincorporated by reference herein in its entirety.

TECHNOLOGICAL FIELD

Example embodiments of the present invention relate generally to acomputer-executable method, a computer system and a computer apparatusfor programmatically processing and analyzing textual information togenerate attribute descriptors associated with one or more commercialentities (e.g., merchants, consumers) and/or one or more commercialobjects (e.g., products, services, experiences, promotions) contained inthe textual information.

BACKGROUND

Certain commercial retailers enable consumers to review merchants andproducts and/or service provides to review consumers. In this regard,areas for improving conventional techniques for automated processing,interpreting and using consumer review information have been identifiedand technical solutions have been implemented in exemplary embodiments.

BRIEF SUMMARY

Embodiments provide a computer-executable method, computer system andnon-transitory computer-readable medium for programmatically processingtext information to generate attribute descriptors contained therein.

In accordance with one exemplary embodiment, a computer-executed methodis provided for programmatically processing text information to generateattribute descriptors contained therein. The method includesprogrammatically accessing, via a network device, a textual unit, thetextual unit associated with a commercial entity or a commercial object.The method also includes executing a text processing engine toprogrammatically generate an attribute descriptor from the textual unit.The method further includes storing, on a non-transitorycomputer-readable storage device, the attribute descriptor inassociation with identification of the commercial entity or thecommercial object.

In some embodiments, generating the attribute descriptor from thetextual unit may include: preprocessing textual information from thetextual unit; analyzing the pre-processed textual information togenerate the attribute descriptor; generating a list of attributedescriptors based on the attribute descriptor and one or more otherattribute descriptors generated from the from the textual unit; andvalidating the list of attribute descriptors.

In accordance with another exemplary embodiment, one or morenon-transitory computer-readable media are provided, having encodedthereon one or more computer-executable instructions that, when executedon a computing device, performs a computer-executable method forprogrammatically processing text information to generate attributedescriptors contained therein. The method includes programmaticallyaccessing, via a network device, a textual unit, the textual unitassociated with a commercial entity or a commercial object. The methodalso includes executing a text processing engine to programmaticallygenerate an attribute descriptor from the textual unit. The methodfurther includes storing, on a non-transitory computer-readable storagedevice, the attribute descriptor in association with identification ofthe commercial entity or the commercial object.

In accordance with another exemplary embodiment, a computing system isprovided. The computer system includes a network device, and a processorprogrammed or configured to programmatically access, via a networkdevice, a textual unit, the textual unit associated with a commercialentity or a commercial object, and to execute a text processing engineto programmatically generate an attribute descriptor from the textualunit. The computer system also includes a non-transitory storage devicefor storing the attribute descriptor in association with identificationof the commercial entity or the commercial object.

In certain embodiments, in generating an attribute descriptor for afirst commercial entity or object, one or more consumer reviews on thefirst commercial entity or object may be used. In certain otherembodiments, in generating an attribute descriptor for a firstcommercial entity or object, consumer reviews on one or more additionalcommercial entities or objects may be used. In certain otherembodiments, in generating an attribute descriptor for a firstcommercial entity or object, consumer reviews on the first commercialentity or object and consumer reviews on one or more additionalcommercial entities or objects may be used.

In certain cases, information on the first commercial entity or objectmay be compared to information on the additional entities or objects todetermine whether information on the additional entities or objects issuitable for generating an attribute descriptor for the first entity orobject. In one embodiment, certain profile data items of the entities orobjects may be compared to determine if they match or overlap. Forexample, if two commercial entities are both Italian restaurants, thenconsumer reviews on one entity may be analyzed to generate an attributedescriptor for the other entity.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects, features, and advantages ofexemplary embodiments will become more apparent and may be betterunderstood by referring to the following description taken inconjunction with the accompanying drawings.

FIG. 1 is a block diagram illustrating an exemplary system within whichexemplary embodiments may operate.

FIG. 2 is a block diagram illustrating exemplary modules of a computingdevice for use in a promotional server in accordance with certainexemplary embodiments.

FIG. 3 is a block diagram illustrating exemplary modules of a computingdevice for use by a consumer or merchant in accordance with an exemplaryembodiment.

FIG. 4 is a flowchart illustrating an exemplary computer-executablemethod for programmatically generating attribute descriptors withintextual information.

FIG. 5 is a block diagram illustrating exemplary computer-executedmodules of an exemplary attribute descriptor extraction engine.

FIGS. 6A and 6B illustrate exemplary user interfaces rendered on aconsumer's computing device, each user interface displaying an attributedescriptor for a merchant.

FIG. 7 is a block diagram of an exemplary computing device that may beused to implement and execute exemplary computer-executable methods.

The accompanying drawings are not intended to be drawn to scale.

DETAILED DESCRIPTION

Exemplary embodiments provide computer systems, computer-executablemethods and one or more non-transitory computer-readable media forprogrammatically processing, analyzing and interpreting textualinformation to programmatically and automatically generate one or moreattribute descriptors contained in the textual information. Exemplarytextual information may include a review of a commercial entity (e.g.,merchant, consumer) or a commercial object (e.g., product, service,promotion, experience), but is not limited to reviews. Exemplaryembodiments are applicable to reviews and to textual information that donot constitute reviews. Exemplary textual information may include,without limitation, free-text, field-delimited text, one or morealphanumeric ratings, combinations thereof, and the like.

Quantitative and/or qualitative assessments of commercial entities orobjects facilitate future consumers in making purchase decisions, butconventional assessment techniques of using consumer review informationsuffer from numerous deficiencies. Certain conventional assessmenttechniques require a consumer to present an overall review for amerchant or product even though making a purchase decision based on anoverall review is often difficult. Furthermore, consumer reviews arelong and difficult to produce and to read, which results in fewconsumers writing reviews or perusing them.

Exemplary embodiments address deficiencies in conventional consumerreview processing techniques by, for example, programmaticallyextracting one or more attribute descriptors regarding a commercialentity or object from consumer reviews. In some embodiments, an“attribute descriptor” of a commercial entity or object may be a textualpiece of data regarding the commercial entity or object. Attributedescriptors may be programmatically generated from text that may beopinionated (text including a subjective and polarized observation abouta particular attribute descriptor, for example, a consumer review) ornon-opinionated (e.g., general product descriptions). In someembodiments, corpuses for exemplary attribute descriptors may bedeveloped by programmatically analyzing a body of consumer reviews andextracting attribute descriptors therefrom.

In certain cases, an attribute descriptor for a commercial entity (e.g.,a merchant) may indicate a product or service sold by the merchant(e.g., “pasta,” “burgers”).

In certain cases, an attribute descriptor for a commercial object (e.g.,a food item) may indicate a component, constituent or character of theobject (e.g., vegetarian, fatty, gluten-free).

In certain cases, an attribute descriptor may indicate a contextualdescription or opinion describing a contextual feature or attribute of acommercial entity or object. Exemplary contextual attribute descriptorsmay describe, for example, a setting (e.g., attribute descriptor“romantic” may describe a restaurant as having a romantic setting), asituation, a physical environment (e.g., attribute descriptor “music”),hygiene, price level (e.g., attribute descriptor “cost”), a physicallocation (e.g., attribute descriptor “neighborhood safety”), and thelike.

In certain cases, an attribute descriptor may indicate a qualityassociated with a commercial entity or object. Exemplary qualityattribute descriptors may describe, for example, durability (e.g.,attribute descriptor “rugged” may describe a durable pair of hikingboots), fragility (e.g., attribute descriptor “brittle”), size and/orweight (e.g., attribute descriptor “small and light”), costeffectiveness (e.g., attribute descriptor “value for money”), quality ofcustomer service (e.g., attribute descriptor “customer service”),performance, and the like.

In certain cases, an attribute descriptor may indicate an event orhappening regarding a commercial entity or object. Exemplary eventattribute descriptors may indicate, for example, whether a consumer hadto return a commercial object (e.g., attribute descriptor “returnedit”), a consumer's specific experience (e.g., attribute descriptor“fails after 2 months”), and the like.

In certain cases, an attribute descriptor may broadly indicate afeature, categorization or sub-categorization of any feature of acommercial entity or object. Exemplary category or sub-categoryattribute descriptors may describe, for example, a subject matterassociated with the commercial entity or object (e.g., attributedescriptor “outdoorsy” may describe an outdoor equipment retail store),a genre of a product (e.g., attribute descriptor “authentic Italian” or“fresh sushi” may describe a type of food sold by a restaurant), afeature or component of a commercial object (e.g., attribute descriptor“spicy” may describe food that is spicy, attribute descriptor “good forgaming” may describe a laptop that has a fast processor and goodgraphics, attribute descriptor “screen quality” may describe a laptopwith a good quality screen), and the like.

In certain cases, an attribute descriptor may indicate a combination oftwo or more attributes of a commercial entity or object.

In certain embodiments, an attribute descriptor may have a predeterminedmaximum phrase, word or alphanumeric character length, e.g., 5, 6, 7, 8,9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, etc.

Certain multi-word attribute descriptors may include words that arepresent consecutively or immediately adjacent to each other within text.For example, a consumer review stating “their hiking boots arecomfortable” may be programmatically analyzed to generate “hiking boots”as a multi-word attribute descriptor. Certain other multi-word attributedescriptors may include words that are not present consecutively orimmediately adjacent to each other within text. For example, a consumerstating “great cheese in their burgers” may be programmatically analyzedto generate “cheese burger” as a multi-word attribute descriptor.

Certain attribute descriptors may be received, extracted orprogrammatically generated from consumer review information provided byconsumers regarding one or more commercial entities and objects, forexample, from consumer reviews, ratings and survey responses. In certainnon-limiting cases, the consumer review information may be in the formof reviews that include structured or unstructured text. For structuredtext reviews, exemplary embodiments may programmatically generateattribute descriptors based on the names of the text fields (e.g., atext field titled “customer service” may be used to generate anattribute descriptor “customer service”). For unstructured text reviews,exemplary embodiments may programmatically generate attributedescriptors based on suitable grammatical context detection techniques.In certain cases, machine learning may be applied to determine anattribute descriptor based on consumer information previously providedfor a commercial entity or object.

In certain cases, the consumer review information (e.g., reviews,ratings and survey responses) may be accessed from Internet websitesusing, for example, a web crawler. In certain cases, the consumerreviews, ratings and survey responses may be accessed from a databaseassociated with a promotion and marketing service.

In certain embodiments, in generating an attribute descriptor for afirst commercial entity or object, one or more consumer reviews on thefirst commercial entity or object may be used. In certain otherembodiments, in generating an attribute descriptor for a firstcommercial entity or object, consumer reviews on one or more additionalcommercial entities or objects may be used. In certain otherembodiments, in generating an attribute descriptor for a firstcommercial entity or object, consumer reviews on the first commercialentity or object and consumer reviews on one or more additionalcommercial entities or objects may be used.

In certain cases, information on the first commercial entity or objectmay be compared to information on the additional entities or objects todetermine whether information on the additional entities or objects issuitable for generating an attribute descriptor for the first entity orobject. In one embodiment, certain profile data items of the entities orobjects may be compared to determine if they match or overlap. Forexample, if two commercial entities are both Italian restaurants, thenconsumer reviews on one entity may be analyzed to generate an attributedescriptor for the other entity.

One or more consumer ratings or reviews usable to determine an attributedescriptor may include one or more of: one or more quantitative ratings,one or more qualitative reviews, and the like.

In certain embodiments, a visual user interface may be customized foreach consumer so that one or more commercial entities or objects areprogrammatically selected for display for that particular consumer. Forexample, attribute descriptors on the commercial entity or object may becompared to attribute descriptors of interest to the consumer todetermine if the commercial entity or object is of relevance or interestto the consumer and, if so, to display consumer review informationrelated to the commercial entity or object. For example, if an attributedescriptor for a merchant indicates that it is a “cheap” restaurant andif consumer information indicates that a consumer has a low income or isfrugal, then the restaurant may be determined to be of relevance to theconsumer and displayed on a computing device of the consumer.

In some embodiments, one or more attribute descriptors associated with acommercial entity or object may be displayed for a consumer. The top nnumber of attribute descriptors may be selected for display based ontheir relevance to the consumer. Certain embodiments may providedifferent visualization options to provide rating or review informationin a succinct and easy to view manner. One exemplary visualizationtechnique is a tag cloud in which each tag is an attribute descriptor.

In some cases, a consumer may be allowed to adjust the display ofattribute descriptors associated with a commercial entity or object, forexample, based on relevance or interest to the consumer, based onwhether the attribute descriptor is spam, and the like.

I. Definitions of Terms

Certain terms used in connection with exemplary embodiments are definedbelow.

As used herein, the terms “data,” “content,” “information,” and similarterms may be used interchangeably to refer to data capable of beingtransmitted, received, and/or stored in accordance with embodiments ofthe present invention. Thus, use of any such terms should not be takento limit the spirit and scope of embodiments of the present invention.Further, where a computing device is described herein to receive datafrom another computing device, it will be appreciated that the data maybe received directly from the another computing device or may bereceived indirectly via one or more intermediary computing devices, suchas, for example, one or more servers, relays, routers, network accesspoints, base stations, hosts, and/or the like, sometimes referred toherein as a “network.” Similarly, where a computing device is describedherein to send data to another computing device, it will be appreciatedthat the data may be sent directly to the another computing device ormay be sent indirectly via one or more intermediary computing devices,such as, for example, one or more servers, relays, routers, networkaccess points, base stations, hosts, and/or the like.

As used herein, the term “promotion and marketing service” may include aservice that is accessible via one or more computing devices and isoperable to provide example promotion and/or marketing services onbehalf of one or more providers that are offering one or moreinstruments that are redeemable for goods, services, experiences and/orthe like. In some examples, the promotion and marketing service may takethe form of a redemption authority, a payment processor, a rewardsprovider, an entity in a financial network, a promoter, an agent and/orthe like. As such, the service is, in some example embodiments,configured to present one or more promotions via one or moreimpressions, accept payments for promotions from consumers, issueinstruments upon acceptance of an offer, participate in redemption,generate rewards, provide a point of sale device or service, issuepayments to providers and/or or otherwise participate in the exchange ofgoods, services or experiences for currency, value and/or the like.

As used herein, the term “merchant” may include, but is not limited to,a business owner, consigner, shopkeeper, tradesperson, vender, operator,entrepreneur, agent, dealer, organization or the like that is in thebusiness of a providing a good, service or experience to a consumer,facilitating the provision of a good, service or experience to aconsumer and/or otherwise operating in the stream of commerce. Oneexample merchant may be a running company that sells attire for use by aperson who runs or participates in athletic activities.

As used herein, the term “consumer” may include, but is not limited to,a client, customer, purchaser, shopper, user, or the like, who may be inthe position to or does exchange value for one or more vouchers underthe terms defined by one or promotions. For example, and using theaforementioned running company as the example provider, a consumer maybe an individual who is interested in purchasing running shoes.

As used herein, the term “commercial entity” may include any commercialactor including, but not limited to, an individual, a consumer, a buyer,a seller, a group of individuals, a company, a retailer, a wholesaler, aservice provider, a promotion and marketing service, and the like.

As used herein, the term “commercial object” may include any good,service or promotion that may be purchased or sold.

As used herein, the term “consumer interface” may include any digitallyrendered user interface displayed on a visual display device forenabling a consumer to interface with a promotion and marketing service.An exemplary consumer interface may enable a consumer to view one ormore promotions, purchase one or more promotions, share one or morepromotions with other consumers, receive messages and/or promotions fromother consumers, receive messages from the promotion and marketingservice, and the like. Exemplary consumer interfaces may be rendered inany desired form including, but not limited to, as a mobile applicationfor display on a mobile computing device (e.g., a smartphone), a webpageor website for display on a mobile or non-mobile computing device viathe Internet, and the like.

As used herein, the term “promotion” may include, but is not limited to,any type of offered, presented or otherwise indicated reward, discount,coupon, credit, deal, incentive, discount, media or the like that isindicative of a promotional value or the like that upon purchase oracceptance results in the issuance of an instrument that may be usedtoward at least a portion of the purchase of particular goods, servicesand/or experiences defined by the promotion. An example promotion, usingthe aforementioned running company as the example provider, is $25 for$50 toward running shoes. In some examples, the promotion defines anaccepted value (e.g., a cost to purchase the promotion), a promotionalvalue (e.g., the value of the resultant instrument beyond the acceptedvalue), a residual value (e.g., the value upon return or upon expiry ofone or more redemption parameters), one or more redemptions parametersand/or the like. Using the running company promotion as an example, theaccepted value is $25 and the promotional value is $50. In this example,the residual value may be equal to the accepted value.

As used herein, the term “promotion score” refers to a programmaticallygenerated quantitative or qualitative score or indication of theexpected effectiveness of providing an impression of a promotion to aconsumer. In some embodiments, the expected effectiveness may beindicated by a predicted probability or likelihood that the consumerwill purchase the promotion offered by an impression.

As used herein, the term “impression” may include a communication, adisplay, or other perceived indication, such as a flyer, print media,e-mail, text message, application alert, mobile applications, mobilenotifications, other type of electronic interface or distributionchannel and/or the like, of one or more promotions. For example, andusing the aforementioned running company as the example provider, ane-mail communication sent to consumers that indicates the availabilityof a promotion of $25 for $50 toward running shoes.

As used herein, the term “voucher” may include, but is not limited to,any type of gift card, tender, electronic certificate, medium ofexchange, or the like, that embodies the terms of the promotion fromwhich it results and which may be used toward at least a portion of thepurchase, acquisition, procurement, consumption, or the like, of goods,services and/or experiences. In some examples, a voucher may take theform of tender that has a given value that is exchangeable for goods,services and/or experiences and/or a reduction in a purchase price of aparticular good, service or experience. In some examples, the vouchermay have multiple values, such as an accepted value, a promotional valueand/or a residual value. For example, using the aforementioned runningcompany as the example provider, a voucher may comprise an electronicindication in a mobile application that shows $50 of value to spend atthe running company. In some examples, the accepted value of the voucheris defined by the value exchanged for the voucher. In some examples, thepromotional value of the voucher is defined by the promotion from whichthe voucher resulted and is the value of the voucher beyond the acceptedvalue. In some examples, the residual value of the voucher is the valueafter redemption, the value after the expiry or other violation of aredemption parameter, the return or exchange value of the voucher, orthe like.

As used herein, the term “redemption” may include the use, exchange orother presentation of a voucher for at least a portion of a good,service or experience as defined by the voucher and its related offer.In some examples, redemption includes the verification of validity ofthe voucher. In other example embodiments, redemption may include anindication that a particular voucher has been redeemed and thus nolonger retains an actual, promotional and/or residual value (e.g., fullredemption). In other example embodiments, redemption may include theredemption of at least a portion of a voucher's actual, promotionaland/or residual value (e.g., partial redemption). An example ofredemption, using the aforementioned running company as the exampleprovider, is exchanging a $50 voucher and $50 for a $100 pair of runningshoes.

As used herein, the terms “mobile computing device” and “mobile device”refer to any computing or communication device that is portable and istransported in normal usage (e.g., the iPhone™ mobile communicationdevice, the Android™ mobile communication device, and the like), andthat is capable of communication and that has sufficient processor powerand memory capacity to perform the operations described herein. Forexample, and without limitation, a mobile computing device may include asmartphone, a table computer, a laptop computer, and the like.

As used herein, the terms “application program,” “mobile application”and “mobile app” refer to computer-executable application softwareprogrammed or configured to run on a processing unit of a mobilecomputing device.

As used herein, the term “promotion application program” refers to anapplication program programmed or configured to run on a processing unitof a mobile computing device in order to enable a user of the computingdevice to use a promotion and marketing service. An exemplary promotionapplication program may be in constant or periodic communication with aremote computing device or server run by the promotion and marketingservice to provide computer-executable functionality to the mobilecomputing device. An exemplary promotion application program may, forexample, provide a user interface configured to render impressions ofone or more promotions, receive user input selecting one or moreimpressions, and enable purchase of the promotions in response to userinput.

As used herein, the term “module,” encompasses hardware, software and/orfirmware configured to perform one or more particular functions.

As used herein, the term “computer-readable medium” refers to anon-transitory storage hardware, non-transitory storage device ornon-transitory computer system memory that may be accessed by acontroller, a microcontroller, a computational system or a module of acomputational system to encode thereon computer-executable instructionsor software programs. The “computer-readable medium” may be accessed bya computational system or a module of a computational system to retrieveand/or execute the computer-executable instructions or software programsencoded on the medium. The non-transitory computer-readable media mayinclude, but are not limited to, one or more types of hardware memory,non-transitory tangible media (for example, one or more magnetic storagedisks, one or more optical disks, one or more USB flash drives),computer system memory or random access memory (such as, DRAM, SRAM, EDORAM) and the like.

As used herein, the term “set” refers to a collection of one or moreitems.

As used herein, the term “plurality” refers to two or more items.

As used herein, the terms “equal” and “substantially equal” referinterchangeably, in a broad lay sense, to exact equality or approximateequality within some tolerance.

As used herein, the terms “similar” and “substantially similar” referinterchangeably, in a broad lay sense, to exact sameness or approximatesimilarity within some tolerance.

As used herein, the terms “couple,” “coupled” and “coupling” refer to adirect or indirect connection among two or more components. For example,a first component may be coupled to a second component directly orthrough one or more intermediate components.

II. Exemplary Embodiments

Some exemplary embodiments of the present invention will now bedescribed more fully hereinafter with reference to the accompanyingdrawings in which some, but not all, embodiments of the inventions areshown. Indeed, these inventions may be embodied in many different formsand should not be construed as limited to the embodiments set forthherein; rather, these embodiments are provided so that this disclosurewill satisfy applicable legal requirements. Like numbers refer to likeelements throughout.

Although certain embodiments are described herein with reference topromotions and a promotion and marketing service, certain otherembodiments are not thusly limited and may be implemented generally andwithout specific reference to promotions to a promotion and marketingservice.

FIG. 1 is a block diagram illustrating an exemplary system within whichexemplary embodiments may operate. An exemplary promotion and marketingservice 100 may manage a promotional system 102 for managing the offer,purchase, and redemption of a set of promotions. Consumers and merchantsmay access the promotional system 102 via a network 112 (such as theInternet, or the like) using computer devices 114A through 114N and 116Athrough 116N, respectively. The promotional system 102 may include apromotional server 104 in communication with a promotional database 106that stores the set of promotions managed by the promotion and marketingservice. The promotion system 102 may have access to a merchant databaseor any suitable data storage structure 108 storing information on one ormore merchants, one or more products offered by a merchant, one or moreservices offered by a merchant, and the like. The promotional system 102may have access to a historical database or any suitable data storagestructure 110 storing information regarding one or more of: promotionsand impressions previously distributed to consumers, consumer profiledata, prior activities performed by consumers with respect to promotionsand impressions, prior activities performed by consumers with respect tocommercial entities or objects, and the like. In various embodiments,promotional database 106, merchant database 108 and historical database110 may be distinct databases, or may alternatively refer to a singledatabase. In certain embodiments, merchant database 108 and historicaldatabase 110 may be provided independently of a promotional system 102.

The promotional server 104 may be embodied by a computing system, suchas apparatus 200 shown in FIG. 2. As illustrated in FIG. 2, theapparatus 200 may include a computer processor or computer processingmodule 202, a memory 204, an input/output module 206, and acommunications module 208.

In some embodiments, the apparatus 200 may include a text processingengine 210 programmed or configured to programmatically andautomatically process one or more consumer reviews with respect to acommercial entity or commercial object. The text processing engine 210may take as input one or more consumer reviews for a single commercialentity or commercial object, or a plurality of consumer reviews formultiple commercial entities and/or commercial objects. The textprocessing engine 210 may extract and output one or more attributedescriptors associated with each consumer review.

The text processing engine 210 may include an attribute descriptorextraction engine 212 programmed or configured to programmaticallyextract one or more attribute descriptors from a consumer review. Theattribute descriptor extraction engine 212 may implement and runcomputer-executed natural language processing techniques to identifywords and/or phrases that may represent aspects (or attributedescriptors) for commercial entities and/or objects. In one embodiment,an attribute descriptor extraction engine 212 may generate a numericalscore indicating the importance or usefulness of the identifiedattribute descriptor in the consumer review. The attribute descriptorextraction engine 212 may thereby generate a set or list of all usefulor important attribute descriptors identified in the consumer review.For example, a consumer review that states “excellent burgers and goodmargaritas” may be analyzed to generate an attribute descriptor list of“burgers, margaritas.”

The text processing engine 210 may include a natural language processingengine 214 programmed or configured to perform natural languageprocessing techniques on text information processed by the textprocessing engine 210. The natural language processing engine 214 may bein data communication with the attribute descriptor extraction engine212. The natural language processing engine 214 may take as inputtextual information received and processed by the attribute descriptorextraction engine 212, and generate as output a processed version of thetextual information (e.g., the textual information tagged withparts-of-speech tags) and/or information on the textual information(e.g., parts-of-speech in the textual information).

The text processing engine 210 may include an attribute descriptordisplay engine 216 programmed or configured to selectively display oneor more attribute descriptors on a visual display device. The consumerreview display engine 216 may be in data communication with theattribute descriptor extraction engine 212 to receive the attributedescriptors generated by the attribute descriptor extraction engine 212.The attribute descriptor display engine 216 may use the communicationsmodule 208, e.g., a network device, to transmit computer-executableinstructions to an external computing device to cause the externalcomputing device to visually display the attribute descriptors.

The text processing engine 210 may include a relevance engine 218programmed or configured to determine a relevance of a commercial entityor commercial object for a particular consumer based on the consumer'sinformation (e.g., profile data of the consumer and/or data on prioractivities of the consumer) and based on one or more attributedescriptors generated for the commercial entity or object. The relevanceengine 218 may be in data communication with the attribute descriptorextraction engine 212 and the attribute descriptor display engine 216.

In one example, one or more profile data items of the consumer may becompared to one or more attribute descriptors of a particular commercialentity or object to determine if the consumer may be interested in theentity or object (e.g., if the profile data items indicate that theconsumer may have particular interest in the attribute descriptors). Forexample, if the consumer's profile data item indicates that she is“outdoorsy,” then a merchant with an attribute descriptor “hiking boots”may be determined to have particular relevance to the consumer. In thiscase, the merchant (and, optionally, the “hiking boots” attributedescriptor) may be recommended to the consumer by causing a consumercomputing device to display a representation of the merchant and theattribute descriptor.

In another example, data on prior activities of the consumer may becompared to one or more attribute descriptors of a particular commercialentity or object to determine if the consumer may be interested in theentity or object (e.g., if the prior activities indicate that theconsumer may have particular interest in the attribute descriptors). Forexample, if the consumer's prior activity data indicates that shefrequently purchases “hiking boots,” then a merchant with an attributedescriptor “hiking boots” may be determined to have particular relevanceto the consumer. In this case, the merchant (and, optionally, the“hiking boots” attribute descriptor) may be recommended to the consumerby causing a consumer computing device to display a representation ofthe merchant and the attribute descriptor.

In another example, one or more profile data items and prior activitydata of the consumer may be compared to one or more attributedescriptors of a particular commercial entity or object to determine ifthe consumer may be interested in the entity or object.

The profile data items may include, but are not limited to, anidentification of the consumer, an age of the consumer, a gender of theconsumer, a race of the consumer, an income of the consumer, a locationassociated with the consumer (e.g., a residential location, a worklocation), a merchant preference of the consumer, a category orsub-category of interest to the consumer, a product preference of theconsumer, a price preference of the consumer, and the like. The prioractivity data may include, but are not limited to, data on one or morepurchase activities, one or more product or merchant viewing activities,one or more product or merchant rating activities, one or more promotionviewing activities, one or more promotion rating activities, and thelike.

In some embodiments, the processor 202 (and/or co-processor or any otherprocessing circuitry assisting or otherwise associated with theprocessor) may be in communication with the memory 204 via a bus fortransmitting information among components of the apparatus. The memory204 may be non-transitory and may include, for example, one or morevolatile and/or non-volatile memories. In other words, for example, thememory may be an electronic storage device (e.g., a computer readablestorage medium). The memory may be configured to store information,data, content, applications, instructions, or the like, for enabling theapparatus to carry out various functions in accordance with an exampleembodiment of the present invention.

The processor 202 may be embodied in a number of different ways and may,for example, include one or more processing devices configured toperform independently. Additionally or alternatively, the processor 202may include one or more processors configured in tandem via a bus toenable independent execution of instructions, pipelining, and/ormultithreading.

In an example embodiment, the processor 202 may be configured to executeinstructions stored in the memory 204 or otherwise accessible to theprocessor. Alternatively or additionally, the processor may beconfigured to execute hard-coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination thereof,the processor may represent an entity (e.g., physically embodied incircuitry) capable of performing operations according to an embodimentof the present invention while configured accordingly. Alternatively, asanother example, when the processor is embodied as an executor ofsoftware instructions, the instructions may specifically configure theprocessor to perform the algorithms and/or operations described hereinwhen the instructions are executed.

In some embodiments, the apparatus 200 may include an input/outputmodule 206 that may, in turn, be in communication with processor 202 toprovide output to the user and, in some embodiments, to receive anindication of a user input. The input/output module may comprise a userinterface and may include a display. In such embodiments, the userinterface may comprise a web user interface, a mobile application, aclient device, a kiosk, or the like. In some embodiments, theinput/output module 206 may also include a keyboard, a mouse, a touchscreen, touch areas, soft keys, a microphone, a speaker, or otherinput/output mechanisms. The processor, or user interface circuitryincluding the processor, may be configured to control one or morefunctions of one or more user interface elements through computerprogram instructions (e.g., software and/or firmware) stored on a memoryaccessible to the processor (e.g., memory 204, onboard memory of theprocessor, and/or the like).

Meanwhile, the communications module 208 may be any means such as adevice or circuitry embodied in either hardware or a combination ofhardware and software that is configured to receive and/or transmit datafrom/to a network and/or any other device or module in communicationwith the apparatus 200. In this regard, the communication interface mayinclude, for example, an antenna (or multiple antennas) and supportinghardware and/or software for enabling communications with a wirelesscommunication network. Additionally or alternatively, the communicationinterface may include the circuitry for interacting with the antenna(s)to cause transmission of signals via the antenna(s) or to handle receiptof signals received via the antenna(s). In some environments, thecommunication interface may additionally or alternatively support wiredcommunication. As such, for example, the communication interface mayinclude a communication modem and/or other hardware/software forsupporting communication via cable, digital subscriber line (DSL),universal serial bus (USB), or other mechanisms.

In one embodiment, a consumer or merchant may use the apparatus 200(e.g., as a kiosk) to communicate with the promotional system 102 toview promotion information or interact with promotions. However, in someembodiments of the present invention, the consumer or merchant mayperform these functions from outside of the promotional system 102using, for example, an end-user device, such as consumer device 114 ormerchant device 116.

Referring now to FIG. 3, a block diagram is illustrated showing anexample end-user device, apparatus 300, that may be configured to enablea user to view promotions from outside the promotional system 102, inaccordance with embodiments of the present invention. In FIG. 3, theapparatus 300, which may embody consumer device 114 or merchant device116, may include or otherwise be in communication with a processor 302,a memory 304, a communications module 308, and a user interface 306. Insome embodiments, the processor (and/or co-processor or any otherprocessing circuitry assisting or otherwise associated with theprocessor) may be in communication with the memory 304 via a bus forpassing information among components of the apparatus. The memory 304may be non-transitory and may include, for example, one or more volatileand/or non-volatile memories. In other words, for example, the memorymay be an electronic storage device (e.g., a computer readable storagemedium). The memory may be configured to store information, data,content, applications, instructions, or the like, for enabling theapparatus to carry out various functions in accordance with an exampleembodiment of the present invention.

The processor 302 may be embodied in a number of different ways and may,for example, include one or more processing devices configured toperform independently. Additionally or alternatively, the processor mayinclude one or more processors configured in tandem via a bus to enableindependent execution of instructions, pipelining, and/ormultithreading.

In an example embodiment, the processor 302 may be configured to executeinstructions stored in the memory 304 or otherwise accessible to theprocessor. Alternatively or additionally, the processor may beconfigured to execute hard-coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination thereof,the processor 302 may represent an entity (e.g., physically embodied incircuitry) capable of performing operations according to an embodimentof the present invention while configured accordingly. Alternatively, asanother example, when the processor 302 is embodied as an executor ofsoftware instructions, the instructions may specifically configure theprocessor 302 to perform the algorithms and/or operations describedherein when the instructions are executed.

In some embodiments, the apparatus 300 may include a user interface 306that may, in turn, be in communication with processor 302 to provideoutput to the user and, in some embodiments, to receive an indication ofa user input. As such, the user interface 306 may include a display andmay comprise a web user interface, a mobile application, a clientdevice, a kiosk, or the like. In some embodiments, the user interface306 may also include a keyboard, a mouse, a touch screen, touch areas,soft keys, a microphone, a speaker, or other input/output mechanisms.The processor 302, or user interface circuitry comprising the processor302, may be configured to control one or more functions of one or moreuser interface elements through computer program instructions (e.g.,software and/or firmware) stored on a memory accessible to the processor(e.g., memory 304, and/or the like).

Meanwhile, the communications module 308 may be any means such as adevice or circuitry embodied in either hardware or a combination ofhardware and software that is configured to receive and/or transmit datafrom/to a network and/or any other device or module in communicationwith the apparatus 300 (e.g., promotional server 104 or, more generally,promotional system 102, other consumer devices 114 or merchant devices116, or the like). In this regard, the communication interface mayinclude, for example, an antenna (or multiple antennas) and supportinghardware and/or software for enabling communications with a wirelesscommunication network. Additionally or alternatively, the communicationinterface may include the circuitry for interacting with the antenna(s)to cause transmission of signals via the antenna(s) or to handle receiptof signals received via the antenna(s). In some environments, thecommunication interface may additionally or alternatively support wiredcommunication. As such, for example, the communication interface mayinclude a communication modem and/or other hardware/software forsupporting communication via cable, digital subscriber line (DSL),universal serial bus (USB), or other mechanisms.

FIG. 4 is a flowchart illustrating an exemplary computer-implementedmethod 400 of identifying and generating attribute descriptors containedin textual information, e.g., text-based consumer reviews. The textualinformation processed in the method of FIG. 4 may constitute any textualunit including, without limitation, a full consumer review, a collectionof multiple consumer reviews, a set of paragraphs, a paragraph, asentence, a phrase, a word, and the like.

In step 402, the text processing engine 210 (more particularly, theattribute descriptor extraction engine 212) may programmatically receivetextual information from a non-transitory computer-readable storagedevice via a network device.

In step 404, the attribute descriptor extraction engine 212 maypre-process the textual information received.

In step 406, the attribute descriptor extraction engine 212 mayprogrammatically analyze the pre-processed textual information togenerate one or more attribute descriptors contained therein.

In step 408, the attribute descriptor extraction engine 212 may cleanthe generated attribute descriptors to generate a list of attributedescriptors.

In step 410, in a non-limiting exemplary embodiment, the list ofattribute descriptors generated in step 408 may be validated by human orautomated validation techniques. In one embodiment, the validation maybe performed using crowd-sourcing techniques.

In step 412, the attribute descriptors generated in step 408 (andvalidated in step 410 in some embodiments) may be stored on anon-transitory computer-readable media. The attribute descriptors may bestored in association with identification of a commercial entity orobject for which the attribute descriptors apply. In one exemplaryembodiment, textual units (e.g., consumer reviews) and their associatedattribute descriptors may be saved in a non-transitory computer-readablestorage device to create a repository of consumer feedback from a broadaudience.

In step 414, the attribute descriptor display engine 216 may transmitcomputer-executable instructions to a consumer's computing device todisplay one or more of the generated attribute descriptors. Thecomputer-executable instructions may, in some cases, be transmitted inresponse to a request from the consumer computing device for informationon the commercial entity or object. In some cases, the request mayspecify the commercial entity or object. In some cases, the request mayspecify one or more attribute descriptors of interest to the consumerand, in response, information on commercial entities or objects havingthose attribute descriptors may be displayed.

In step 416, the relevance engine 218 may transmit computer-executableinstructions to a consumer's computing device to make a purchaserecommendation based on one or more generated attribute descriptors.

In one example, one or more profile data items of the consumer may becompared to one or more attribute descriptors of a particular commercialentity or object to determine if the consumer may be interested in theentity or object (e.g., if the profile data items indicate that theconsumer may have particular interest in the attribute descriptors). Forexample, if the consumer's profile data item indicates that she is“outdoorsy,” then a merchant with an attribute descriptor “hiking boots”may be determined to have particular relevance to the consumer. In thiscase, the merchant (and, optionally, the “hiking boots” attributedescriptor) may be recommended to the consumer by causing a consumercomputing device to display a representation of the merchant and theattribute descriptor.

In another example, data on prior activities of the consumer may becompared to one or more attribute descriptors of a particular commercialentity or object to determine if the consumer may be interested in theentity or object (e.g., if the prior activities indicate that theconsumer may have particular interest in the attribute descriptors). Theprior activity data may indicate purchase activities, commercialrecommendation viewing activities, promotion redemption activities, andthe like. For example, if the consumer's prior activity data indicatesthat she frequently purchases “hiking boots,” then a merchant with anattribute descriptor “hiking boots” may be determined to have particularrelevance to the consumer. In this case, the merchant (and, optionally,the “hiking boots” attribute descriptor) may be recommended to theconsumer by causing a consumer computing device to display arepresentation of the merchant and the attribute descriptor.

In another example, one or more profile data items and prior activitydata of the consumer may be compared to one or more attributedescriptors of a particular commercial entity or object to determine ifthe consumer may be interested in the entity or object.

In one exemplary embodiment, the attribute descriptors identified fromconsumer reviews may be used to generate survey queries to allowconsumers to review and rate commercial entities and objects. Forexample, exemplary embodiments may analyze consumer reviews associatedwith one or more restaurants to generate attribute descriptor “burgers,”and may generate a survey query for Restaurant X to ask consumers “IsRestaurant X great for burgers?” Details of generating survey queriesare contained in U.S. Provisional Patent Application No. 62/018,456,incorporated by reference above.

FIG. 5 is a block diagram illustrating exemplary computer-executedmodules of an exemplary attribute descriptor extraction engine 212. Adata collection and pre-processing module 502 may be programmed orconfigured to programmatically access textual information which mayinclude, but is not limited to, opinionated textual information (e.g.,consumer reviews) 504, merchant data (e.g., merchant names) 506,relevant data sources 508. The opinionated textual information 504 maycontain opinions related to a particular commercial entity or object.These may include, for example, reviews from post redemption surveys,tips delivered by consumers in the merchant pages, and the like. Themerchant data 506 may be used to remove matches of the name in the inputreviews, as the name is not a useful attribute descriptor that could beextracted. The relevant data sources 508 may be related to elements thatcould be used to clean generated attribute descriptors or other datasources that could improve the attribute descriptor extraction process,including, without limitation, dictionaries, specialized lexicons, andthe like.

A natural language pre-processing module 510 may be programmed orconfigured to pre-process data in the data sources 504, 506, 508. As thekey input data source is natural language, it is important to both cleanthe data, and transform it so that it may be used for attributedescriptor extraction techniques implemented in the attribute descriptorextraction engine 212.

In one exemplary pre-processing technique, every word is labeled in theinput textual information with parts-of-speech tagging (POS Tagging).For example, textual information stating “The food was great” may bepre-processed to generate “(the (DT)) (food (NN) (was (VBD) great(JJ)))”¹. This pre-processing step may be used as input for thedifferent attribute descriptor extraction techniques. ¹DT: determiner,NN: noun, VBD: verb, past tense, JJ: adjective. Defined by the PennTreeBank(https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html),the entire contents of which are expressly incorporated herein byreference.

In another exemplary pre-processing technique, the words in the textualinformation may be processed into lemmas to allow the attributedescriptor extraction techniques to recognize situations in whichdifferent word forms refer to the same attribute descriptor. Forexample, plural forms may be converted to the singular form (e.g.,burgers to burger).

In another exemplary pre-processing technique, a spell-checking systemis used to improve the quality of the attribute descriptors that areextracted. The spell checker is trained using a corpus of textualinformation so that it can recognize domain-specific terms and names.This improves the quality of the attribute descriptors by removingmisspelled words and by reducing the number of near-duplicates caused byattribute descriptors with varied (but still correct) spellings.

Other techniques for pre-processing and cleaning the textual informationmay be related to word-sense disambiguation to identify the true meaningof the words involved in a sentence, especially for words with multipledefinitions. For example, the “hot” may be disambiguated based on itscontext, e.g., “hot” related to weather conditions or “hot” used todescribe spicy food. Other techniques for pre-processing and cleaningthe textual information may perform constituent grammars analysis(phrase structure grammar or dependency grammar) to identify nouns ornoun phrases, or implicit nouns, to which the textual information (e.g.,consumer review) is referring to. Other techniques for pre-processingand cleaning the textual information may implement machinelearning/computational linguistic techniques to clean the input textualinformation and/or improve the attribute descriptor extractiontechniques.

An automatic attribute descriptor extraction module 512 may beprogrammed or configured to extract or generate attribute descriptors inthe pre-processed textual information generated by the natural languagepre-processing module 510. The attribute descriptor extraction module512 may include one or more modules 514 implement different attributedescriptor extraction techniques.

In one embodiment, the modules 514 may be modular and pluggable so thatdifferent combinations of the modules 514 may be selected and used. Forexample, the modules 514 may be designed to accept a standard set ofinput data, and output candidate attribute descriptors in a standardformat. This allows addition of new extraction techniques or removalcurrent techniques without altering any other parts of the system. In anappropriate computational environment, the extraction techniques 514 maybe run in parallel, and may incorporate parallelism themselves.

Certain exemplary modules 514 implementing computer-executable attributedescriptor extraction techniques are described below.

Noun Phrase Extraction: This technique considers the POS tagging fromthe previous natural language pre-processing module 510, and generates afrequency-based set of phrases from the reviews, but exclusively nounphrases (i.e., consecutive words with NN, NNS, NNP, NNPS tags²). Thisstrategy may be generated for n-grams, with n>0. This technique allowsextraction of terms like “chicken tikka masala” when using noun phraseswith n=3, “ice cream” when using n=2, and the like. All noun phrases ofthis form may be extracted, filtered through a list of excluded terms,and only those noun phrases that occur frequently may be stored. ²NN:noun, NNS: noun, plural, NNP: proper noun, NNPS: proper noun, plural.

N-Gram Phrases: N-Gram phrases are also known as “collocations,” or ahabitual words combination, or sequence of words that can co-occur morethan other sequences. An exemplary technique allows for one or moreintervening words to appear in the text, without necessary includingthem in the resulting attribute descriptor. For example, the phrase “thecheese in the burger” would be recognized as belonging to the attributedescriptor “cheese burger.” The technique may be tuned to findcollocations of two, three, or more terms, and/or several differentlengths. The POS tags may be used to filter out collocations that areunlikely to result in useful or good attribute descriptors. Generally,noun sequences are preferred, but some patterns with non-nouns may alsobe included (“hot stone massage”). The remaining collocations may beranked using a statistical calculation (e.g., pointwise mutualinformation, likelihood ratio, or a similar method), and the top scoringcollocations may be retained.

Topical N-Grams: This technique, based in some pre-defined probabilitydistribution functions and an input number of topics to find (N), learnsa probabilistic topic representation of each textual unit (e.g.,consumer review or document) and the n-grams (a set of n consecutivewords) associated to each topic. An exemplary topical n-gram techniquemay be divided into the following steps:

-   -   1. For each textual unit (e.g., consumer review or document),        randomly assign each n-gram to one of the N topics.    -   2. Iterate each topic        -   a. Compute the Probability(topic t|document d) (using            n-grams in the documents and topics) and            Probability(n-grams|topic t).        -   b. Reassign the n-gram to a new topic based on            Probability(topic t|document d)*Probability(n-gram|topic t)    -   3. Repeat previous process for a given number of times. The        assignments of the n-grams to topics will start converging to        the n-grams that are most likely to generate the textual units        given as input (e.g., set of reviews).    -   4. Some n-grams are less likely to appear so they may be ranked        per topic based on this probability. At the end, less likely        n-grams in a topic can be pruned by setting an input threshold        (only top k n-grams per topic).

Other attribute descriptor extraction techniques may be used tocomplement the previously mentioned techniques in some embodimentsincluding, for example, deterministic and probabilistic methods. Some ofthese techniques include, without limitation, multi-grain LatentDirichlet Allocation (LDA), hierarchical LDA, Pitman-Yor processes (aka,Chinese Restaurant Process), Hierarchical Pitman-Yor Language Models,Phrase-Discovery LDA, other machine learning techniques, and the like.

A merging module 516 is programmed or configured to merge the results (alist of attribute descriptors and, optionally, scores) of each attributedescriptor extraction technique, to normalize the scores and combine thescores. In some embodiments, each attribute descriptor extractiontechnique may generate a score indicating a likelihood that a generatedattribute descriptor is corrected identified. The final score may becalculated as a linear combination of the normalized score from eachattribute descriptor extraction technique. This allows the system toassign different weights to each of the attribute descriptor extractiontechniques to emphasize or de-emphasize the effect of each technique.

An attribute descriptor cleaning module 520 is programmed or configuredto “clean” or validate the generated attribute descriptors via automatictechniques to minimize the overall set of attribute descriptorsavailable. In some cases, to generate a high quality list of attributedescriptors, a human-driven cleaning step may be used to validate thegenerated attribute descriptors (for example, by crowd-sourcing). Insome cases, a list of editorialized attribute descriptors 518 may beincluded as input (e.g., attribute descriptors generated by an editorialteam that could be considered important). In other cases, automatictechniques may be used to validate the generated attribute descriptors.The attribute descriptor cleaning module 520 thereby generates avalidated set of attribute descriptors 526.

Automated attribute descriptor cleaning techniques: As presented in FIG.5, an automatic attribute descriptor cleaning module 522 is programmedor configured to integrate the raw output from the attribute descriptorextraction module 512 with some of the output from the natural languagepre-processing module 510 with other attribute descriptor sources (e.g.,editorialized attribute descriptors predefined by other mechanisms) inorder to remove some low-quality attribute descriptors. In this module522, some of the cleaning strategies may perform spell checking toremove misspelled attribute descriptors, remove attribute descriptorscontaining blacklisted words, remove attribute descriptors containingrepeated words, and other anomalies that would generate low-qualityattribute descriptors.

In some cases, the spell checking technique may be trained specificallyto the context of a promotion and marketing service as the service mayuse some words most often related to certain terms rather than others.For example, a generic spell-checker may attempt to assign the term“foof” to “foot,” while in the context of restaurant reviews, theexpected fix may be “food”. This does not only help for suggestedcorrections, but also to capture specific terms that might not beincluded in generic spell checkers (e.g., “tikka” or “masala” in theattribute descriptor “chicken tikka masala”).

Crowd-sourced attribute descriptor cleaning techniques: As presented inFIG. 5, a crowd-sourced attribute descriptor cleaning module 524 isprogrammed or configured to generate a human-curated list ofwords/phrases that would describe any potentially polarized attributedescriptor of a commercial entity or object that may influence aconsumer's decision to do business with the entity. “Potentiallypolarized” means that the attribute descriptor may be described in apotentially positive or negative context. This human-curated list ofpotentially polarized attribute descriptors may be generated by removingcertain attribute descriptors from the output list from the automatedattribute descriptor cleaning module 522. Some consumers may consider anattribute descriptor to be important, while some others may not.Exemplary attribute descriptor extraction and cleaning techniquesattempt to cover as much of these two scenarios as possible. Certainembodiments may include information on the relevancy of certainattribute descriptors for a given persona, consumer or segment ofconsumers.

FIGS. 6A and 6B illustrate exemplary user interfaces 600 a and 600 b,respectively, each recommending a particular merchant to a consumer andincluding an attribute descriptor for the merchant that is determined tobe of particular relevance for that consumer. The relevance to theconsumer may be determined by the relevance engine 218 based on theconsumer's prior activity data and/or profile data. For example, FIG. 6Aindicates an Italian restaurant and an attribute descriptor of “pasta.”FIG. 6B indicates a Japanese restaurant and an attribute descriptor of“sushi.”

III. Exemplary Computing Devices

Systems and methods disclosed herein may include one or moreprogrammable processing units having associated therewith executableinstructions held on one or more computer readable media, RAM, ROM, harddrive, and/or hardware. In exemplary embodiments, the hardware, firmwareand/or executable code may be provided, for example, as upgrademodule(s) for use in conjunction with existing infrastructure (forexample, existing devices/processing units). Hardware may, for example,include components and/or logic circuitry for executing the embodimentstaught herein as a computing process.

Displays and/or other feedback means may also be included, for example,for rendering a graphical user interface, according to the presentdisclosure. The display and/or other feedback means may be stand-aloneequipment or may be included as one or more components/modules of theprocessing unit(s).

The actual software code or control hardware which may be used toimplement some of the present embodiments is not intended to limit thescope of such embodiments. For example, certain aspects of theembodiments described herein may be implemented in code using anysuitable programming language type such as, for example, assembly code,C, C# or C++ using, for example, conventional or object-orientedprogramming techniques. Such code is stored or held on any type ofsuitable non-transitory computer-readable medium or media such as, forexample, a magnetic or optical storage medium.

As used herein, a “processor,” “processing unit,” “computer” or“computer system” may be, for example, a wireless or wire line varietyof a microcomputer, minicomputer, server, mainframe, laptop, personaldata assistant (PDA), wireless e-mail device (for example, “BlackBerry,”“Android” or “Apple,” trade-designated devices), cellular phone, pager,processor, fax machine, scanner, or any other programmable deviceconfigured to transmit and receive data over a network. Computer systemsdisclosed herein may include memory for storing certain softwareapplications used in obtaining, processing and communicating data. Itcan be appreciated that such memory may be internal or external to thedisclosed embodiments. The memory may also include non-transitorystorage medium for storing software, including a hard disk, an opticaldisk, floppy disk, ROM (read only memory), RAM (random access memory),PROM (programmable ROM), EEPROM (electrically erasable PROM), flashmemory storage devices, or the like.

FIG. 7 depicts a block diagram representing an exemplary computingdevice 1300 that may be used to implement the systems and methodsdisclosed herein. The computing device 1300 may be any computer system,such as a workstation, desktop computer, server, laptop, handheldcomputer, tablet computer (e.g., the iPad™ tablet computer), mobilecomputing or communication device (e.g., the iPhone™ mobilecommunication device, the Android™ mobile communication device, and thelike), or other form of computing or telecommunications device that iscapable of communication and that has sufficient processor power andmemory capacity to perform the operations described herein. In exemplaryembodiments, a distributed computational system may include a pluralityof such computing devices.

The computing device 1300 includes one or more non-transitorycomputer-readable media having encoded thereon one or morecomputer-executable instructions or software for implementing theexemplary methods described herein. The non-transitory computer-readablemedia may include, but are not limited to, one or more types of hardwarememory and other tangible media (for example, one or more magneticstorage disks, one or more optical disks, one or more USB flash drives),and the like. For example, memory 1306 included in the computing device1300 may store computer-readable and computer-executable instructions orsoftware for implementing a graphical user interface as describedherein. The computing device 1300 also includes processor 1302 andassociated core 1304, and in some embodiments, one or more additionalprocessor(s) 1302′ and associated core(s) 1304′ (for example, in thecase of computer systems having multiple processors/cores), forexecuting computer-readable and computer-executable instructions orsoftware stored in the memory 1302 and other programs for controllingsystem hardware. Processor 1302 and processor(s) 1302′ may each be asingle core processor or a multiple core (1304 and 1304′) processor.

Virtualization may be employed in the computing device 1300 so thatinfrastructure and resources in the computing device may be shareddynamically. A virtual machine 1314 may be provided to handle a processrunning on multiple processors so that the process appears to be usingonly one computing resource rather than multiple computing resources.Multiple virtual machines may also be used with one processor.

Memory 1306 may include a computer system memory or random accessmemory, such as DRAM, SRAM, EDO RAM, and the like. Memory 1306 mayinclude other types of memory as well, or combinations thereof.

A user may interact with the computing device 1300 through a visualdisplay device 1318, such as a screen or monitor, which may display oneor more graphical user interfaces 1320 provided in accordance withexemplary embodiments described herein. The visual display device 1318may also display other aspects, elements and/or information or dataassociated with exemplary embodiments.

The computing device 1300 may include other I/O devices for receivinginput from a user, for example, a keyboard or any suitable multi-pointtouch interface 1308 or pointing device 1310 (e.g., a mouse, a user'sfinger interfacing directly with a display device). As used herein, a“pointing device” is any suitable input interface, specifically, a humaninterface device, that allows a user to input spatial data to acomputing system or device. In an exemplary embodiment, the pointingdevice may allow a user to provide input to the computer using physicalgestures, for example, pointing, clicking, dragging, dropping, and thelike. Exemplary pointing devices may include, but are not limited to, amouse, a touchpad, a finger of the user interfacing directly with adisplay device, and the like.

The keyboard 1308 and the pointing device 1310 may be coupled to thevisual display device 1318. The computing device 1300 may include othersuitable conventional I/O peripherals. The I/O devices may facilitateimplementation of the one or more graphical user interfaces 1320, forexample, implement one or more of the graphical user interfacesdescribed herein.

The computing device 1300 may include one or more storage devices 1324,such as a durable disk storage (which may include any suitable opticalor magnetic durable storage device, e.g., RAM, ROM, Flash, USB drive, orother semiconductor-based storage medium), a hard-drive, CD-ROM, orother computer readable media, for storing data and computer-readableinstructions and/or software that implement exemplary embodiments astaught herein. In exemplary embodiments, the one or more storage devices1324 may provide storage for data that may be generated by the systemsand methods of the present disclosure. For example, a storage device1324 may provide storage for a merchant database 108 includinginformation on one or more merchants, and for a historical database 110including information on one or more prior activities performed byconsumers and profile information on consumers. A storage device 1324may also provide storage for a text processing engine 210. The one ormore storage devices 1324 may be provided on the computing device 1300and/or provided separately or remotely from the computing device 1300.The exemplary components depicted as being stored on storage device 1324may be stored on the same or on different storage devices.

The computing device 1300 may include a network interface 1312configured to interface via one or more network devices 1322 with one ormore networks, for example, Local Area Network (LAN), Wide Area Network(WAN) or the Internet through a variety of connections including, butnot limited to, standard telephone lines, LAN or WAN links (for example,802.11, T1, T3, 56kb, X.25), broadband connections (for example, ISDN,Frame Relay, ATM), wireless connections, controller area network (CAN),or some combination of any or all of the above. The network interface1312 may include a built-in network adapter, network interface card,PCMCIA network card, card bus network adapter, wireless network adapter,USB network adapter, modem or any other device suitable for interfacingthe computing device 1300 to any type of network capable ofcommunication and performing the operations described herein. Thenetwork device 1322 may include one or more suitable devices forreceiving and transmitting communications over the network including,but not limited to, one or more receivers, one or more transmitters, oneor more transceivers, one or more antennae, and the like.

The computing device 1300 may run any operating system 1316, such as anyof the versions of the Microsoft® Windows® operating systems, thedifferent releases of the Unix and Linux operating systems, any versionof the MacOS® for Macintosh computers, any embedded operating system,any real-time operating system, any open source operating system, anyproprietary operating system, any operating systems for mobile computingdevices, or any other operating system capable of running on thecomputing device and performing the operations described herein. Inexemplary embodiments, the operating system 1316 may be run in nativemode or emulated mode. In an exemplary embodiment, the operating system1316 may be run on one or more cloud machine instances.

One of ordinary skill in the art will recognize that exemplary computingdevice 1300 may include more or fewer modules than those shown in FIG.7.

In describing exemplary embodiments, specific terminology is used forthe sake of clarity. For purposes of description, each specific term isintended to, at least, include all technical and functional equivalentsthat operate in a similar manner to accomplish a similar purpose.Additionally, in some instances where a particular exemplary embodimentincludes a plurality of system elements or method steps, those elementsor steps may be replaced with a single element or step. Likewise, asingle element or step may be replaced with a plurality of elements orsteps that serve the same purpose. Further, where parameters for variousproperties are specified herein for exemplary embodiments, thoseparameters may be adjusted up or down by 1/20th, 1/10th, ⅕th, ⅓rd, ½nd,and the like, or by rounded-off approximations thereof, unless otherwisespecified. Moreover, while exemplary embodiments have been shown anddescribed with references to particular embodiments thereof, those ofordinary skill in the art will understand that various substitutions andalterations in form and details may be made therein without departingfrom the scope of the invention. Further still, other aspects, functionsand advantages are also within the scope of the invention.

Exemplary flowcharts are provided herein for illustrative purposes andare non-limiting examples of methods. One of ordinary skill in the artwill recognize that exemplary methods may include more or fewer stepsthan those illustrated in the exemplary flowcharts, and that the stepsin the exemplary flowcharts may be performed in a different order thanshown.

Blocks of the block diagram and the flow chart illustrations supportcombinations of means for performing the specified functions,combinations of steps for performing the specified functions and programinstruction means for performing the specified functions. It will alsobe understood that some or all of the blocks/steps of the circuitdiagram and process flowchart, and combinations of the blocks/steps inthe circuit diagram and process flowcharts, can be implemented byspecial purpose hardware-based computer systems that perform thespecified functions or steps, or combinations of special purposehardware and computer instructions. Exemplary systems may include moreor fewer modules than those illustrated in the exemplary block diagrams.

Many modifications, combinations and other embodiments of the inventionsset forth herein will come to mind to one skilled in the art to whichthese embodiments of the invention pertain having the benefit of theteachings presented in the foregoing descriptions and the associateddrawings. Therefore, it is to be understood that the embodiments of theinvention are not to be limited to the specific embodiments disclosedand that modifications, combinations and other embodiments are intendedto be included within the scope of the appended claims. Althoughspecific terms are employed herein, they are used in a generic anddescriptive sense only and not for purposes of limitation.

What is claimed is:
 1. A computer-executed method for programmaticallygenerating an attribute descriptor from a textual unit, the methodcomprising: programmatically accessing, via a network device, a textualunit, the textual unit associated with a commercial entity or acommercial object; executing a text processing engine toprogrammatically generate a set of attribute descriptors associated withthe commercial entity or the commercial object from the textual unitbased on: preprocessing textual information from the textual unit todetermine a set of pre-processed attribute descriptors; and performingan attribute descriptor cleaning process with respect to the set ofpre-processed attribute descriptors to generate the set of attributedescriptors associated with the commercial entity or the commercialobject, wherein the attribute descriptor cleaning process is associatedwith spell checking that is trained based on context of the commercialentity or the commercial object; validating the set of attributedescriptors by: comparing each attribute descriptor of the set ofattribute descriptors to an attribute descriptor record to identify acommon attribute descriptor sub-set shared by the set of attributedescriptors and the attribute descriptor record, wherein the attributedescriptor record is generated before the set of attribute descriptorsis generated, and wherein the attribute descriptor record comprises oneor more blacklisted attribute descriptors; and generating a validatedlist of attribute descriptors by removing the common attributedescriptor sub-set from the set of attribute descriptors; storing, on anon-transitory computer-readable storage device, the validated list ofattribute descriptors in association with identification of thecommercial entity or the commercial object; and transmitting, via thenetwork device, one or more computer-executable instructions to acomputing device, the one or more computer-executable instructionsprogrammed to cause the computing device to visually display one or moreattribute descriptors from the validated set of attribute descriptors inassociation with the commercial entity or the commercial object.
 2. Themethod of claim 1, wherein preprocessing textual information from thetextual unit includes one or more of: performing parts-of-speech taggingof words from the textual information; converting the words from thetextual information into lemmas; or performing disambiguation of thewords from the textual information.
 3. The method of claim 1, whereinperforming the attribute descriptor cleaning process to generate theattribute descriptor includes using one or more of: noun phraseextraction; N-gram phrases; or topical N-grams.
 4. The method of claim1, wherein performing the attribute descriptor cleaning process togenerate the attribute descriptor includes using one or more of:multi-grain Latent Dirichlet Allocation (LDA); hierarchical LDA;Pitman-Yor processes; Hierarchical Pitman-Yor Language Models; orPhrase-Discovery LDA.
 5. The method of claim 1, wherein validating thelist of attribute descriptors includes at least one of: an automatedattribute descriptor cleaning; or a crowd-sourced attribute descriptorcleaning.
 6. The method of claim 1, further comprising: programmaticallyanalyzing prior purchase data or profile data associated with a firstconsumer to generate a first attribute descriptor of interest to thefirst consumer; programmatically matching the first attribute descriptorto the attribute descriptor generated based on the textual unit; andbased on the matching, transmitting computer-executable instructions toa computing device associated with the first consumer to cause a visualdisplay device associated with the computing device to display theattribute descriptor in association with the commercial entity or thecommercial object.
 7. The method of claim 1, wherein the commercialentity is one of a merchant, product, service, or promotion.
 8. Themethod of claim 1, wherein the attribute descriptor indicates at leastone of: context associated with the commercial entity or the commercialobject; a quality associated with the commercial entity or thecommercial object; or a category or sub-category associated with thecommercial entity or the commercial object.
 9. An apparatus operable ona distributed computing system, the apparatus comprising: a networkdevice; a processor programmed or configured to programmatically access,via the network device, a textual unit, the textual unit associated witha commercial entity or a commercial object, the processor furtherprogrammed or configured to: execute a text processing engine toprogrammatically generate a set of attribute descriptors associated withthe commercial entity or the commercial object from the textual unitbased on: preprocessing textual information from the textual unit todetermine a set of pre-processed attribute descriptors; performing anattribute descriptor cleaning process with respect to the set ofpre-processed attribute descriptors to generate the set of attributedescriptors associated with the commercial entity or the commercialobject, wherein the attribute descriptor cleaning process is associatedwith spell checking that is trained based on context of the commercialentity or the commercial object; validating the set of attributedescriptors by: comparing each attribute descriptor of the set ofattribute descriptors to an attribute descriptor record to identify acommon attribute descriptor sub-set shared by the set of attributedescriptors and the attribute descriptor record, wherein the attributedescriptor record is generated before the set of attribute descriptorsis generated; and generating a validated list of attribute descriptorsby removing the common attribute descriptor sub-set from the set ofattribute descriptors; transmit, via the network device, one or morecomputer-executable instructions to a computing device, the one or morecomputer-executable instructions programmed to cause the computingdevice to visually display one or more attribute descriptors from thevalidated set of attribute descriptors in association with thecommercial entity or the commercial object; and a non-transitory storagemodule for storing the validated list of attribute descriptors inassociation with identification of the commercial entity or thecommercial object.
 10. The apparatus of claim 9, wherein preprocessingtextual information from the textual unit includes one or more of:performing parts-of-speech tagging words from the textual information;converting the words from the textual information into lemmas; orperforming disambiguation of the words from the textual information. 11.The apparatus of claim 9, wherein performing the attribute descriptorcleaning process to generate the attribute descriptor includes using oneor more of: noun phrase extraction; N-gram phrases; or topical N-grams.12. The apparatus of claim 9, wherein performing the attributedescriptor cleaning process to generate the attribute descriptorincludes using one or more of: multi-grain Latent Dirichlet Allocation(LDA); hierarchical LDA; Pitman-Yor processes; Hierarchical Pitman-YorLanguage Models; or Phrase-Discovery LDA.
 13. The apparatus of claim 9,wherein the processor programmed or configured to execute the textprocessing engine to programmatically validate the list of attributedescriptors includes at least one of: an automated attribute descriptorcleaning; or a crowd-sourced attribute descriptor cleaning.
 14. Theapparatus of claim 9, wherein the processor is further programmed orconfigured to: programmatically analyze prior purchase data or profiledata associated with a first consumer to generate a first attributedescriptor of interest to the first consumer; programmatically match thefirst attribute descriptor to the attribute descriptor generated basedon the textual unit; and based on the matching, transmitcomputer-executable instructions to a computing device associated withthe first consumer to cause a visual display device associated with thecomputing device to display the attribute descriptor in association withthe commercial entity or the commercial object.
 15. The apparatus ofclaim 9, wherein the commercial entity is one of a merchant, product,service, or promotion.
 16. The apparatus of claim 9, wherein theattribute descriptor indicates at least one of: context associated withthe commercial entity or the commercial object; a quality associatedwith the commercial entity or the commercial object; or a category orsub-category associated with the commercial entity or the commercialobject.
 17. One or more non-transitory computer-readable media havingencoded thereon one or more computer-executable instructions that, whenexecuted on a computer, cause performance of a computer-executed method,the method comprising: programmatically accessing, via a network device,a textual unit, the textual unit associated with a commercial entity ora commercial object; executing a text processing engine toprogrammatically generate an attribute descriptor associated with thecommercial entity or the commercial object from the textual unit basedon: preprocessing textual information from the textual unit to determinea set of pre-processed attribute descriptors; performing an attributedescriptor cleaning process with respect to the set of pre-processedattribute descriptors to generate the attribute descriptor associatedwith the commercial entity or the commercial object, wherein theattribute descriptor cleaning process is associated with spell checkingthat is trained based on context of the commercial entity or thecommercial object; generating a list of attribute descriptors based onthe attribute descriptor and one or more other attribute descriptorsgenerated from the from the textual unit; validating the list ofattribute descriptors by: comparing each attribute descriptor of the setof attribute descriptors to an attribute descriptor record to identify acommon attribute descriptor sub-set shared by the set of attributedescriptors and the attribute descriptor record, wherein the attributedescriptor record is generated before the set of attribute descriptorsis generated, and wherein the attribute descriptor record comprises oneor more blacklisted attribute descriptors; and generating a validatedlist of attribute descriptors by removing the common attributedescriptor sub-set from the set of attribute descriptors; storing, on anon-transitory computer-readable storage device, the validated list ofattribute descriptors in association with identification of thecommercial entity or the commercial object; and transmitting, via thenetwork device, one or more computer-executable instructions to acomputing device, the one or more computer-executable instructionsprogrammed to cause the computing device to visually display one or moreattribute descriptors from the validated set of attribute descriptors inassociation with the commercial entity or the commercial object.